package com.egghiro.framework.j2se.util;

import java.text.SimpleDateFormat;
import java.util.Date;

public class SDateTimeUtils {
    
    public static boolean isExistsTimestamp(String timestampString,final String TIMESTAMP_FORMAT_STRING){
        SimpleDateFormat timestampFormat = new SimpleDateFormat(TIMESTAMP_FORMAT_STRING);
        // 厳密チェックに設定する。
        // 厳密チェックにすれば、実在日ではない場合にParseExceptionが発生する
        timestampFormat.setLenient(false);
        try {
//            System.out.println(timestampString);
            
            Date parsedDate = timestampFormat.parse(timestampString);
            
//            System.out.println(timestampFormat.format(parsedDate));
//            return timestampString.equals(timestampFormat.format(parsedDate));
            return true;
//        } catch (ParseException e) {
////            e.printStackTrace();
//            return false;
//        } catch (NullPointerException e){
////            e.printStackTrace();
//            return false;
        } catch (Exception e){
//            e.printStackTrace();
            return false;
        }
    }
    
    public static boolean isExistsDate(String yyyyMMddString){
        return isExistsTimestamp(yyyyMMddString, "yyyyMMdd");
    }
    
//    public static void main(String [] args){
//        System.out.println(isExistsDate(null));
//        System.out.println(isExistsDate("aabbccdd"));
//        System.out.println(isExistsDate("20140228"));
//        System.out.println(isExistsDate("20140229"));
//        System.out.println(isExistsTimestamp("2014/02/28 23:59:59","yyyy/MM/dd HH:mm:ss"));
//        System.out.println(isExistsTimestamp("2014/02/28 24:59:59","yyyy/MM/dd HH:mm:ss"));
//        System.out.println(isExistsTimestamp("20140228","yyyy/MM/dd"));
//    }

}
